<?php

//
//  Copyright (C) 2004-2006  Autodesk, Inc.
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of version 2.1 of the GNU Lesser
//  General Public License as published by the Free Software Foundation.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//  Lesser General Public License for more details.
//
//  You should have received a copy of the GNU Lesser General Public
//  License along with this library; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
//

?>

<?php
require_once("config.php");
require_once("utils.php");
require_once(ROOT_DIR_CLASES.'/cCliente.php'); 
require_once(ROOT_DIR_CLASES.'/cClienteBykom.php'); 
require_once(ROOT_DIR_CLASES.'/Regla.php');
require_once 'JSON.php';

class QueryReglas
{
	private $args = null;
	
	function __construct($args)
	{
		$this->args = $args;
	}

    

	function Execute()
	{
		$result = array();
		$cuenta = $this->args['CUENTA'];//ID del padre si es hijo, si es padre es el ID de �l mismo.
		$objetivo = $this->args['OBJETIVODB'];//OBJETIVO del padre si es hijo, si es padre es el OBJETIVO de �l mismo.		
		if($this->args['OBJETIVO']==4){
			$cuenta = $this->args['TABLAID'];//id de la cuenta
			$objetivo = $this->args['OBJETIVO'];//objetivo de la cuenta
		}
		if($this->args["ISBYKOM"]){
			$reglasRegistradas = BykomCliente_byk::Reglas_Cliente($cuenta, $objetivo);
		}else{
			$reglasRegistradas = BykomCliente::Reglas_Cliente($cuenta, $objetivo);
		}
        for($i = 0;  $i < $reglasRegistradas->cantidad(); $i++ ){
			$regla 				= new Regla();
			if(!$this->args["ISBYKOM"]){
				$franjasPorRegla 	= BykomCliente::Reglas_Franjas($reglasRegistradas->campo('id',$i));
			}
			$regla->id 			= $reglasRegistradas->campo('id',$i);
			$regla->nombre 		= $reglasRegistradas->campo('nombre',$i);
			$regla->zona 		= $reglasRegistradas->campo('poligonoFK',$i);
			$regla->debeEstar 	= $reglasRegistradas->campo('debeEstar',$i);
			$regla->flotaId 	= $reglasRegistradas->campo('flotaID',$i);
			$regla->esflota 	= $reglasRegistradas->campo('esFlota',$i);
			$regla->tipoRegla 	= $reglasRegistradas->campo('tipoRegla',$i);
			$regla->tolerancia	= $reglasRegistradas->campo('tolerancia',$i);
			$regla->tipoCuenta	= $reglasRegistradas->campo('tipo',$i);
			if($regla->tipoRegla==0 || $regla->tipoRegla == 1 ){
				if(!$this->args["ISBYKOM"]){
					for ($j = 0; $j < $franjasPorRegla->cantidad(); $j++){
						$franja = array(false,false,false,false,false,false,false,"00:00","23:59");
						$dias = $franjasPorRegla->campo('dias',$j);
						$dias = split(",", $dias);
						for($k=0; $k<count($dias); $k++)
							$franja[((int)$dias[$k])-1]=true;
						$franja[7]=$franjasPorRegla->campo('horaInicio',$j);
						$franja[8]=$franjasPorRegla->campo('horaFin',$j);
						$regla->putFranja($franja);
					}
				}else{
					$franja = array(false,false,false,false,false,false,false,"00:00","23:59");
					if((int)$reglasRegistradas->campo('do',$i)==1){
						$franja[0]=true;
					}
					if((int)$reglasRegistradas->campo('lu',$i)==1){
						$franja[1]=true;
					}
					if((int)$reglasRegistradas->campo('ma',$i)==1){
						$franja[2]=true;
					}
					if((int)$reglasRegistradas->campo('mi',$i)==1){
						$franja[3]=true;
					}
					if((int)$reglasRegistradas->campo('ju',$i)==1){
						$franja[4]=true;
					}
					if((int)$reglasRegistradas->campo('vi',$i)==1){
						$franja[5]=true;
					}
					if((int)$reglasRegistradas->campo('sa',$i)==1){
						$franja[6]=true;
					}
					$franja[7]=$reglasRegistradas->campo('horaInicio',$i);
					$franja[8]=$reglasRegistradas->campo('horaFin',$i);
					$regla->putFranja($franja);
				}
			}else if($regla->tipoRegla == 2){//rutas
				if(!$this->args["ISBYKOM"]){
					for ($j = 0; $j < $franjasPorRegla->cantidad(); $j++){
						$franja = array(false,false,false,false,false,false,false,"00:00","23:59");
						$dias = $franjasPorRegla->campo('dias',$j);
						$dias = split(",", $dias);
						$franja[0] = $dias[0];
						$franja[1] = $dias[1];
						$franja[7] = $franjasPorRegla->campo('horaInicio',$j);
						$franja[8] = $franjasPorRegla->campo('horaFin',$j);
						$regla->putFranja($franja);
					}
				}else{
					$franja = array(false,false,false,false,false,false,false,"00:00","23:59");
					$franja[0] 	= dateMYSQLToDate($reglasRegistradas->campo("fechaDesde",$i),false);
					$franja[1] 	= dateMYSQLToDate($reglasRegistradas->campo("fechaHasta",$i),false);
					$franja[7]	= $reglasRegistradas->campo('horaInicio',$i);
					$franja[8]	= $reglasRegistradas->campo('horaFin',$i);
					$regla->putFranja($franja);
				}
			}
			if(!$this->args["ISBYKOM"]){
				$movilesPorRegla = BykomCliente::Reglas_Moviles($reglasRegistradas->campo('id',$i));	
				for ($j = 0; $j < $movilesPorRegla->cantidad(); $j++){
					$regla->putMovil($movilesPorRegla->campo('movilFK',$j));
				}
			}else{
				$regla->putMovil($reglasRegistradas->campo('movilFK',$i));
			}
        	array_push($result, $regla);
		}
		return $result;
	}
}
?>